package com.ms.education.acl.service;

import com.alibaba.fastjson.JSONObject;
import com.ms.education.acl.entity.Permission;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 权限 服务类
 * </p>
 *
 * @author ms
 * @since 2023-02-18
 */
public interface PermissionService extends IService<Permission> {

    //查询所有权限
    List<Permission> queryAllPermission();

    //递归删除菜单
    void remove(Integer id);

    /**
     * 给角色分配权限
     * @param roleId 角色
     * @param permissionIds  权限
     */
    void doAssign(Integer roleId, Integer[] permissionIds);

    /**
     * 根据角色获取菜单
     * @param roleId 角色
     * @return
     */
    List<Permission> toAssign(Integer roleId);

    //根据用户名获取用户权限
    List<String> permissionValueList(Integer userId);

    //获取用户能看的菜单
    List<JSONObject> getMenu(Integer userId);
}
